<!DOCTYPE html>
<html lang="zh-Hans">
<head>

    <!--[if lt IE 9]>
        <style>body {display: none; background: none !important} </style>
        <meta http-equiv="Refresh" Content="0; url=//outdatedbrowser.com/" />
    <![endif]-->

<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge, chrome=1" />
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
<meta name="format-detection" content="telephone=no" />
<meta name="author" content="Bingo" />



<meta name="description" content="linux操作命令的学习">
<meta property="og:type" content="article">
<meta property="og:title" content="linux学习笔记2">
<meta property="og:url" content="http://blog.acbingo.cn/2015/08/28/linux学习笔记2/index.html">
<meta property="og:site_name" content="Bingo's Blog">
<meta property="og:description" content="linux操作命令的学习">
<meta property="og:image" content="https://dn-anything-about-doc.qbox.me/userid3372labid353time1419920359258">
<meta property="og:image" content="https://dn-anything-about-doc.qbox.me/userid3372labid353time1419920413153">
<meta property="og:image" content="https://dn-anything-about-doc.qbox.me/userid3372labid353time1419920596878">
<meta property="og:image" content="https://dn-anything-about-doc.qbox.me/userid3372labid353time1419920644630">
<meta property="og:image" content="https://dn-anything-about-doc.qbox.me/userid3372labid353time1419920809160">
<meta property="og:image" content="https://dn-anything-about-doc.qbox.me/userid3372labid353time1419920858625">
<meta property="og:image" content="https://dn-anything-about-doc.qbox.me/userid3372labid353time1419920922420">
<meta property="og:image" content="https://dn-anything-about-doc.qbox.me/userid3372labid353time1419920941988">
<meta property="og:image" content="https://dn-anything-about-doc.qbox.me/userid3372labid369time1420779726136">
<meta property="og:image" content="https://dn-anything-about-doc.qbox.me/userid3372labid369time1420779770034">
<meta property="og:image" content="https://dn-anything-about-doc.qbox.me/userid3372labid369time1420779805413">
<meta property="og:image" content="https://dn-anything-about-doc.qbox.me/userid3372labid369time1420779859931">
<meta property="og:image" content="https://dn-anything-about-doc.qbox.me/userid3372labid369time1420780031604">
<meta property="og:image" content="https://dn-anything-about-doc.qbox.me/userid3372labid369time1420780078087">
<meta property="og:image" content="https://dn-anything-about-doc.qbox.me/userid3372labid369time1420780124133">
<meta property="og:image" content="https://dn-anything-about-doc.qbox.me/userid3372labid370time1420780699046">
<meta property="og:image" content="https://dn-anything-about-doc.qbox.me/userid3372labid370time1420780744468">
<meta property="og:image" content="https://dn-anything-about-doc.qbox.me/userid3372labid370time1420780803123">
<meta property="og:image" content="https://dn-anything-about-doc.qbox.me/userid3372labid370time1420780839828">
<meta property="og:image" content="https://dn-anything-about-doc.qbox.me/userid3372labid370time1420781011797">
<meta property="og:image" content="https://dn-anything-about-doc.qbox.me/userid3372labid370time1420781055838">
<meta property="og:image" content="https://dn-anything-about-doc.qbox.me/userid3372labid370time1420781089813">
<meta property="og:image" content="https://dn-anything-about-doc.qbox.me/userid3372labid370time1420781241207">
<meta property="og:image" content="https://dn-anything-about-doc.qbox.me/userid3372labid370time1420781274456">
<meta property="og:updated_time" content="2015-11-28T08:46:29.086Z">
<meta name="twitter:card" content="summary">
<meta name="twitter:title" content="linux学习笔记2">
<meta name="twitter:description" content="linux操作命令的学习">
<meta name="twitter:image" content="https://dn-anything-about-doc.qbox.me/userid3372labid353time1419920359258">

<link rel="apple-touch-icon" href= "/apple-touch-icon.png">


    <link rel="alternate" href="/atom.xml" title="Bingo&#39;s Blog" type="application/atom+xml">



    <link rel="shortcut icon" href="/favicon.png">





    <link href="//cdn.bootcss.com/fancybox/2.1.5/jquery.fancybox.min.css" rel="stylesheet">



    <script src="//cdn.bootcss.com/pace/1.0.2/pace.min.js"></script>
    <link href="//cdn.bootcss.com/pace/1.0.2/themes/blue/pace-theme-minimal.css" rel="stylesheet">


<link rel="stylesheet" href="/css/style.css">



<link href="//cdn.bootcss.com/font-awesome/4.6.3/css/font-awesome.min.css" rel="stylesheet">


<title>linux学习笔记2 | Bingo&#39;s Blog</title>

<script src="//cdn.bootcss.com/jquery/2.2.4/jquery.min.js"></script>
<script src="//cdn.bootcss.com/clipboard.js/1.5.10/clipboard.min.js"></script>

<script>
    var yiliaConfig = {
        fancybox: true,
        animate: false,
        isHome: false,
        isPost: true,
        isArchive: false,
        isTag: false,
        isCategory: false,
        fancybox_js: "//cdn.bootcss.com/fancybox/2.1.5/jquery.fancybox.min.js",
        scrollreveal: "//cdn.bootcss.com/scrollReveal.js/3.1.4/scrollreveal.min.js",
        search: true
    }
</script>


    <script> yiliaConfig.jquery_ui = [false]; </script>



    <script> yiliaConfig.rootUrl = "\/";</script>






</head>
<body>
  <div id="container">
    <div class="left-col">
    <div class="overlay"></div>
<div class="intrude-less">
    <header id="header" class="inner">
        <a href="/" class="profilepic">
            <img src="/img/avatar.png" class="animated zoomIn">
        </a>
        <hgroup>
          <h1 class="header-author"><a href="/">Bingo</a></h1>
        </hgroup>

        
        <p class="header-subtitle">Here&#39;s My Second Brains</p>
        

        
            <form id="search-form">
            <input type="text" id="local-search-input" name="q" placeholder="search..." class="search form-control" autocomplete="off" autocorrect="off" searchonload="false" />
            <i class="fa fa-times" onclick="resetSearch()"></i>
            </form>
            <div id="local-search-result"></div>
            <p class='no-result'>No results found <i class='fa fa-spinner fa-pulse'></i></p>
        


        
            <div id="switch-btn" class="switch-btn">
                <div class="icon">
                    <div class="icon-ctn">
                        <div class="icon-wrap icon-house" data-idx="0">
                            <div class="birdhouse"></div>
                            <div class="birdhouse_holes"></div>
                        </div>
                        <div class="icon-wrap icon-ribbon hide" data-idx="1">
                            <div class="ribbon"></div>
                        </div>
                        
                        <div class="icon-wrap icon-link hide" data-idx="2">
                            <div class="loopback_l"></div>
                            <div class="loopback_r"></div>
                        </div>
                        
                        
                        <div class="icon-wrap icon-me hide" data-idx="3">
                            <div class="user"></div>
                            <div class="shoulder"></div>
                        </div>
                        
                    </div>
                    
                </div>
                <div class="tips-box hide">
                    <div class="tips-arrow"></div>
                    <ul class="tips-inner">
                        <li>菜单</li>
                        <li>标签</li>
                        
                        <li>友情链接</li>
                        
                        
                        <li>关于我</li>
                        
                    </ul>
                </div>
            </div>
        

        <div id="switch-area" class="switch-area">
            <div class="switch-wrap">
                <section class="switch-part switch-part1">
                    <nav class="header-menu">
                        <ul>
                        
                            <li><a href="/">主页</a></li>
                        
                            <li><a href="/archives/">所有文章</a></li>
                        
                            <li><a href="/tags/">标签云</a></li>
                        
                            <li><a href="http://acbingo.cn/">关于我</a></li>
                        
                        </ul>
                    </nav>
                    <nav class="header-nav">
                        <ul class="social">
                            
                                <a class="fa Email" href="/&#116;&#x66;&#117;&#116;&#121;&#x40;&#x71;&#113;&#46;&#99;&#111;&#109;" title="Email"></a>
                            
                                <a class="fa GitHub" href="https://github.com/ACBingo" title="GitHub"></a>
                            
                                <a class="fa 知乎" href="https://www.zhihu.com/people/li-bing-59-10" title="知乎"></a>
                            
                                <a class="fa StackOverflow" href="http://stackoverflow.com/users/6059386/acbingo" title="StackOverflow"></a>
                            
                        </ul>
                    </nav>
                </section>
                
                
                <section class="switch-part switch-part2">
                    <div class="widget tagcloud" id="js-tagcloud">
                        <ul class="tag-list"><li class="tag-list-item"><a class="tag-list-link" href="/tags/Android/">Android</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/Array/">Array</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/Hash-Table/">Hash Table</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/KMP/">KMP</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/LeetCode/">LeetCode</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/Linked-List/">Linked List</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/Math/">Math</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/STL/">STL</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/String/">String</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/android/">android</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/anroid/">anroid</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/books/">books</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/c/">c#</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/c/">c++</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/cocos/">cocos</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/cocos2dx/">cocos2dx</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/const/">const</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/coursera/">coursera</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/git/">git</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/github/">github</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/hash/">hash</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/hdu/">hdu</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/hexo/">hexo</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/linux/">linux</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/markdown/">markdown</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/offer/">offer</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/other/">other</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/poj/">poj</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/shadowsocks/">shadowsocks</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/string/">string</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/ubuntu/">ubuntu</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/uva/">uva</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/vim/">vim</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/二分/">二分</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/二叉树/">二叉树</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/位运算/">位运算</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/其它/">其它</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/分治/">分治</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/动态规划/">动态规划</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/单调队列/">单调队列</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/回溯/">回溯</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/字符串/">字符串</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/字符串匹配/">字符串匹配</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/指针/">指针</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/排序/">排序</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/操作系统/">操作系统</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/数据结构/">数据结构</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/枚举/">枚举</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/树/">树</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/算法/">算法</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/红黑树/">红黑树</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/线段树/">线段树</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/继承/">继承</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/编译原理/">编译原理</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/虚函数/">虚函数</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/逆序对/">逆序对</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/递归/">递归</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/链表/">链表</a></li></ul>
                    </div>
                </section>
                
                
                
                <section class="switch-part switch-part3">
                    <div id="js-friends">
                    
                      <a class="main-nav-link switch-friends-link" href="https://hexo.io">Hexo</a>
                    
                      <a class="main-nav-link switch-friends-link" href="https://pages.github.com/">GitHub</a>
                    
                      <a class="main-nav-link switch-friends-link" href="http://moxfive.xyz/">MOxFIVE</a>
                    
                    </div>
                </section>
                

                
                
                <section class="switch-part switch-part4">
                
                    <div id="js-aboutme">专注于前端</div>
                </section>
                
            </div>
        </div>
    </header>                
</div>
    </div>
    <div class="mid-col">
      <nav id="mobile-nav">
      <div class="overlay">
          <div class="slider-trigger"></div>
          <h1 class="header-author js-mobile-header hide"><a href="/" title="回到主页">Bingo</a></h1>
      </div>
    <div class="intrude-less">
        <header id="header" class="inner">
            <a href="/" class="profilepic">
                <img src="/img/avatar.png" class="animated zoomIn">
            </a>
            <hgroup>
              <h1 class="header-author"><a href="/" title="回到主页">Bingo</a></h1>
            </hgroup>
            
            <p class="header-subtitle">Here&#39;s My Second Brains</p>
            
            <nav class="header-menu">
                <ul>
                
                    <li><a href="/">主页</a></li>
                
                    <li><a href="/archives/">所有文章</a></li>
                
                    <li><a href="/tags/">标签云</a></li>
                
                    <li><a href="http://acbingo.cn/">关于我</a></li>
                
                <div class="clearfix"></div>
                </ul>
            </nav>
            <nav class="header-nav">
                        <ul class="social">
                            
                                <a class="fa Email" target="_blank" href="/&#116;&#x66;&#117;&#116;&#121;&#x40;&#x71;&#113;&#46;&#99;&#111;&#109;" title="Email"></a>
                            
                                <a class="fa GitHub" target="_blank" href="https://github.com/ACBingo" title="GitHub"></a>
                            
                                <a class="fa 知乎" target="_blank" href="https://www.zhihu.com/people/li-bing-59-10" title="知乎"></a>
                            
                                <a class="fa StackOverflow" target="_blank" href="http://stackoverflow.com/users/6059386/acbingo" title="StackOverflow"></a>
                            
                        </ul>
            </nav>
        </header>                
    </div>
    <link class="menu-list" tags="标签" friends="友情链接" about="关于我"/>
</nav>
      <div class="body-wrap"><article id="post-linux学习笔记2" class="article article-type-post" itemscope itemprop="blogPost">
  
    <div class="article-meta">
      <a href="/2015/08/28/linux学习笔记2/" class="article-date">
      <time datetime="2015-08-28T05:58:48.000Z" itemprop="datePublished">2015-08-28</time>
</a>


    </div>
  
  <div class="article-inner">
    
      <input type="hidden" class="isFancy" />
    
    
      <header class="article-header">
        
  
    <h1 class="article-title" itemprop="name">
      linux学习笔记2
    </h1>
  

      </header>
      
      <div class="article-info article-info-post">
        

        
    <div class="article-tag tagcloud">
        <ul class="article-tag-list"><li class="article-tag-list-item"><a class="article-tag-list-link" href="/tags/linux/">linux</a></li></ul>
    </div>

        <div class="clearfix"></div>
      </div>
      
    
    <div class="article-entry" itemprop="articleBody">
      
          
        <p>linux操作命令的学习<br><a id="more"></a></p>
<h1 id="wc-命令"><a href="#wc-命令" class="headerlink" title="wc 命令"></a>wc 命令</h1><p>wc 命令是一个统计的工具，主要用来显示文件所包含的行、字和字节数。</p>
<p>wc 命令是 word count 的缩写。</p>
<h2 id="命令格式："><a href="#命令格式：" class="headerlink" title="命令格式："></a>命令格式：</h2><pre><code>wc [选项] [文件]
</code></pre><h2 id="常用参数："><a href="#常用参数：" class="headerlink" title="常用参数："></a>常用参数：</h2><table>
<thead>
<tr>
<th>参数</th>
<th style="text-align:center">描述</th>
</tr>
</thead>
<tbody>
<tr>
<td>-c</td>
<td style="text-align:center">统计字节数</td>
</tr>
<tr>
<td>-l</td>
<td style="text-align:center">统计行数</td>
</tr>
<tr>
<td>-m</td>
<td style="text-align:center">统计字符数，这个标志不能与 -c 标志一起使用</td>
</tr>
<tr>
<td>-w</td>
<td style="text-align:center">统计字数，一个字被定义为由空白、跳格或换行字符分隔的字符串</td>
</tr>
<tr>
<td>-L</td>
<td style="text-align:center">打印最长行的长度</td>
</tr>
</tbody>
</table>
<h2 id="常用范例："><a href="#常用范例：" class="headerlink" title="常用范例："></a>常用范例：</h2><p>例一：统计文件的字节数、行数、字符数，可以使用如下命令：</p>
<pre><code>wc -c c.txt
wc -l c.txt
wc -m c.txt
</code></pre><p><img src="https://dn-anything-about-doc.qbox.me/userid3372labid353time1419920359258" alt=""></p>
<p>注意每行结尾的换行符也算一个字符，空格也算一个字符。另外，由于系统采用 UTF-8 编码，所以一个汉字为 3 字节，9 个汉字加上一个换行，一共 28 个字节。</p>
<p>例二：统计文件的字节数、行数、字符数，只打印数字，不打印文件名，可以使用如下命令：</p>
<pre><code>cat c.txt | wc -c 
cat c.txt | wc -l 
cat c.txt | wc -m
</code></pre><p><img src="https://dn-anything-about-doc.qbox.me/userid3372labid353time1419920413153" alt=""></p>
<p>例三：统计/bin 目录下的命令个数，可以使用如下命令：</p>
<pre><code>ls /bin | wc -l
</code></pre><h1 id="grep-命令"><a href="#grep-命令" class="headerlink" title="grep 命令"></a>grep 命令</h1><p>grep 是个很强大的命令，用来找到文件中的匹配文本，并且能够接受正则表达式和通配符，同时可以用多个 grep 命令选项来生成各种格式的输出。</p>
<p>grep 的工作方式是这样的，它在一个或多个文件中搜索字符串模板。如果模板包括空格，则必须被引用，模板后的所有字符串被看作文件名。搜索的结果被送到标准输出，不影响原文件内容。</p>
<p>grep 可用于 shell 脚本，因为 grep 通过返回一个状态值来说明搜索的状态，如果模板搜索成功，则返回 0，如果搜索不成功，则返回 1，如果搜索的文件不存在，则返回 2。我们利用这些返回值就可进行一些自动化的文本处理工作。</p>
<h2 id="命令格式：-1"><a href="#命令格式：-1" class="headerlink" title="命令格式："></a>命令格式：</h2><pre><code>grep [选项] pattern [file]
</code></pre><h2 id="常用参数：-1"><a href="#常用参数：-1" class="headerlink" title="常用参数："></a>常用参数：</h2><table>
<thead>
<tr>
<th>参数</th>
<th style="text-align:center">描述</th>
</tr>
</thead>
<tbody>
<tr>
<td>-c</td>
<td style="text-align:center">计算找到 ‘搜寻字符串’(即 pattern) 的次数</td>
</tr>
<tr>
<td>-i</td>
<td style="text-align:center">忽略大小写的不同，所以大小写视为相同</td>
</tr>
<tr>
<td>-n</td>
<td style="text-align:center">输出行号</td>
</tr>
<tr>
<td>-v</td>
<td style="text-align:center">反向选择，打印不匹配的行</td>
</tr>
<tr>
<td>-r</td>
<td style="text-align:center">递归搜索</td>
</tr>
<tr>
<td>–color=auto</td>
<td style="text-align:center">将找到的关键词部分加上颜色显示</td>
</tr>
</tbody>
</table>
<h2 id="常用范例：-1"><a href="#常用范例：-1" class="headerlink" title="常用范例："></a>常用范例：</h2><p>例一：将/etc/passwd 文件中出现 root 的行取出来，关键词部分加上颜色显示，可以使用如下命令：</p>
<pre><code>grep “root” /etc/passwd --color=auto
cat /etc/passwd | grep “root” --color=auto
</code></pre><p><img src="https://dn-anything-about-doc.qbox.me/userid3372labid353time1419920596878" alt=""></p>
<p>例二：将/etc/passwd 文件中没有出现 root 和 nologin 的行取出来，可以使用如下命令：</p>
<pre><code>grep -v “root” /etc/passwd | grep -v “nologin”
</code></pre><p><img src="https://dn-anything-about-doc.qbox.me/userid3372labid353time1419920644630" alt=""></p>
<p>例三：在当前目录下递归搜索文件中包含 main()的文件，经常用于查找某些函数位于哪些源代码文件中，可以使用如下命令：</p>
<pre><code>grep -r “main()” .
</code></pre><h1 id="正则表达式与-grep-命令"><a href="#正则表达式与-grep-命令" class="headerlink" title="正则表达式与 grep 命令"></a>正则表达式与 grep 命令</h1><p>正则表达式是一种符号表示法，被用来识别文本模式。在某种程度上，它们与匹配文件和路径名的 shell 通配符比较相似，但其规模更大。许多命令行工具和大多数的编程语言都支持正则表达式，以此来帮助解决文本操作问题。</p>
<p>正则表达式元字符由以下字符组成：</p>
<pre><code>^ $ . [ ] { } - ? * + ( ) | \ 
</code></pre><p><img src="https://dn-anything-about-doc.qbox.me/userid3372labid353time1419920809160" alt=""></p>
<h2 id="常用范例：-2"><a href="#常用范例：-2" class="headerlink" title="常用范例："></a>常用范例：</h2><p>例一：利用 Linux 系统自带的字典查找一个五个字母的单词，第三个字母为 j,最后一个字母为 r ，/usr/share/dict 目录下存放字典文件，可以使用如下命令：</p>
<pre><code>grep ‘^..j.r$’ linux.words
</code></pre><p><img src="https://dn-anything-about-doc.qbox.me/userid3372labid353time1419920858625" alt=""></p>
<p>例二：验证固定电话，打印符合条件的电话，固定电话格式基本都是带有 0 的区号+连接符“-”＋电话号码，另外还有可能有分机号，区号有 3 位、4 位，电话号码有 7 位和 8 位的，可以使用如下命令：</p>
<pre><code>grep “^0[0-9]{2,3}-[0-9]{7,8}(-[0-9]{3,4})?$” telphone.txt
</code></pre><p>区号：前面一个 0，后面跟 2-3 位数字 ： 0[0-9]{2,3}</p>
<p>电话号码：7-8 位数字： [0-9]{7,8}</p>
<p>分机号：一般都是 3-4 位数字： [0-9]{3,4}<br><img src="https://dn-anything-about-doc.qbox.me/userid3372labid353time1419920922420" alt=""><br>注意执行下面的命令时没有任何匹配输出，这是因为没有加-E 选项，那例一没加为什么可以呢，这是因为 grep 把.当成 shell 通配符，不是正则表达式的元字符。<br><img src="https://dn-anything-about-doc.qbox.me/userid3372labid353time1419920941988" alt=""></p>
<h1 id="cut-命令"><a href="#cut-命令" class="headerlink" title="cut 命令"></a>cut 命令</h1><p>cut 命令是一个将文本按列进行切分的小工具，它可以指定分隔每列的定界符。</p>
<p>如果一行数据包含多个字段（多列），现在想要提取其中的一列或多列，这是 cut 命令就可以大显身手了。</p>
<h2 id="命令格式：-2"><a href="#命令格式：-2" class="headerlink" title="命令格式："></a>命令格式：</h2><pre><code>cut [选项] [文件名]
</code></pre><h2 id="常用参数：-2"><a href="#常用参数：-2" class="headerlink" title="常用参数："></a>常用参数：</h2><p>|参数|    描述|<br>|-b|    以字节为单位进行分割|<br>|-c|    以字符为单位进行分割|<br>|-d|    自定义分隔符，默认为制表符|<br>|-f|    自定义字段|<br>|–complement|    抽取整个文本行，除了那些由 -c 或 -f 选项指定的文本|</p>
<h2 id="常用范例：-3"><a href="#常用范例：-3" class="headerlink" title="常用范例："></a>常用范例：</h2><p>例一：取出 student.txt 文件中的第一列和第三列，可以使用如下命令：</p>
<pre><code>cut -f 1,3 -d ‘ ’ student.txt
</code></pre><p><img src="https://dn-anything-about-doc.qbox.me/userid3372labid369time1420779726136" alt=""></p>
<p>例二：取出 student.txt 文件中的第一列，可以使用如下命令：</p>
<pre><code>cut -f 1 -d ‘ ’ student.txt
</code></pre><p>例三：取出 student.txt 文件中的前三列，可以使用如下命令：</p>
<pre><code>cut -f 1-3 -d ‘ ’ student.txt
</code></pre><p><img src="https://dn-anything-about-doc.qbox.me/userid3372labid369time1420779770034" alt=""></p>
<p>例四：取出 student.txt 文件中除第一列的其他列，可以使用如下命令：</p>
<pre><code>cut -f 1 -d ‘ ’ student.txt --complement
</code></pre><p><img src="https://dn-anything-about-doc.qbox.me/userid3372labid369time1420779805413" alt=""><br>例五：给任意一字符串 str，取出其最后一个字符，可以使用如下命令：</p>
<pre><code>num=$(echo -n $str | wc -c)
echo -n $str | cut -b $num 
或者
echo -n $str | cut -b `echo -n $str | wc -c`
</code></pre><p><img src="https://dn-anything-about-doc.qbox.me/userid3372labid369time1420779859931" alt=""></p>
<h1 id="paste-命令"><a href="#paste-命令" class="headerlink" title="paste 命令"></a>paste 命令</h1><p>paste 命令的功能正好与 cut 相反。它会添加一个或多个文本列到文件中，而不是从文件中抽取文本列。它通过读取多个文件，然后把每个文件中的字段整合成单个文本流，输入到标准输出。</p>
<h2 id="命令格式：-3"><a href="#命令格式：-3" class="headerlink" title="命令格式："></a>命令格式：</h2><pre><code>paste [选项] [文件名]
</code></pre><h2 id="常用参数：-3"><a href="#常用参数：-3" class="headerlink" title="常用参数："></a>常用参数：</h2><table>
<thead>
<tr>
<th>参数</th>
<th style="text-align:center">描述</th>
</tr>
</thead>
<tbody>
<tr>
<td>-s</td>
<td style="text-align:center">将每个文件合并成行而不是按行粘贴</td>
</tr>
<tr>
<td>-d</td>
<td style="text-align:center">自定义分隔符，默认为制表符</td>
</tr>
</tbody>
</table>
<h2 id="常用范例：-4"><a href="#常用范例：-4" class="headerlink" title="常用范例："></a>常用范例：</h2><p>例一：将 student.txt 和 telphone.txt 文件中的内容按列拼接，可以使用如下命令：</p>
<pre><code>paste student.txt telphone.txt
</code></pre><p><img src="https://dn-anything-about-doc.qbox.me/userid3372labid369time1420780031604" alt=""></p>
<p>例二：将 student.txt 和 telphone.txt 文件中的内容按列拼接，指定分隔符为’：’，可以使用如下命令：</p>
<pre><code>paste student.txt telphone.txt -d ‘:’
</code></pre><p><img src="https://dn-anything-about-doc.qbox.me/userid3372labid369time1420780078087" alt=""></p>
<p>例三：将 student.txt 和 telphone.txt 文件中的内容各自拼接成一行，可以使用如下命令：</p>
<p>paste -s student.txt telphone.txt<br><img src="https://dn-anything-about-doc.qbox.me/userid3372labid369time1420780124133" alt=""></p>
<h1 id="tr-命令"><a href="#tr-命令" class="headerlink" title="tr 命令"></a>tr 命令</h1><p>tr 命令常被用来更改字符。我们可以把它看作是一种基于字符的查找和替换操作。换字是一种把字符从一个字母转换为另一个字母的过程。tr 从标准输入中替换、缩减和/或删除字符，并将结果写到标准输出。</p>
<p>tr 只能通过 stdin（标准输入），而无法通过命令行参数来接受输入。</p>
<p>tr 是 translate（转换）的缩写。</p>
<h2 id="命令格式：-4"><a href="#命令格式：-4" class="headerlink" title="命令格式："></a>命令格式：</h2><pre><code>tr [选项] SET1 SET2
</code></pre><p>将来自 stdin 的输入字符从 SET1 映射到 SET2，并将其输出写入 stdout（标准输出）。SET1 和 SET2 是字符类或字符集。如果两个字符集的长度不相等，那么 SET2 会不断重复其最后一个字符，直到长度与 SET1 相同。如果 SET2 的长度大于 SET1，那么在 SET2 中超出 SET1 的那部分字符则全部被忽略。</p>
<h2 id="常用参数：-4"><a href="#常用参数：-4" class="headerlink" title="常用参数："></a>常用参数：</h2><table>
<thead>
<tr>
<th>参数</th>
<th style="text-align:center">描述</th>
</tr>
</thead>
<tbody>
<tr>
<td>-d</td>
<td style="text-align:center">删除匹配 SET1 的内容，并不作替换</td>
</tr>
</tbody>
</table>
<p>常用范例：</p>
<p>例一：将输入的字符大写转换为小写，可以使用如下命令：</p>
<pre><code>echo ‘THIS IS SHIYANLOU!’ | tr ‘A-Z’ ‘a-z’
</code></pre><p>例二：将输入的字符中的数字删除，可以使用如下命令：</p>
<pre><code>echo ‘THIS 123 IS S1HIY5ANLOU!’ | tr -d ‘0-9’
</code></pre><p>例三：tr 命令的一个有趣的用法是执行 ROT13 文本编码。ROT13 是一款微不足道的基于一种简易的替换暗码的加密类型。把 ROT13 称为“加密”是大方的，“文本模糊处理”更准确些。有时候它被用来隐藏文本中潜在的攻击内容。这个方法就是简单地把每个字符在字母表中向前移动 13 位。因为移动的位数是可能的 26 个字符的一半，所以对文本再次执行这个算法，就恢复到了它最初的形式。可以使用如下命令：</p>
<pre><code>#加密
echo ‘shiyanlou’ |  tr  ‘a-zA-Z’  ‘n-za-mN-ZA-M’ 
fuvlnaybh
#解密
echo ‘fuvlnaybh’ | tr  ‘a-zA-Z’  ‘n-za-mN-ZA-M’ 
shiyanlou
</code></pre><h1 id="sort-命令"><a href="#sort-命令" class="headerlink" title="sort 命令"></a>sort 命令</h1><p>同文本文件打交道时，总避不开排序，那是因为对于文本处理任务而言，排序（sort）可以起到不小的作用。sort 命令能够帮助我们对文本文件和 stdin 进行排序操作。通常，它会结合其他命令来生成所需要的输出。</p>
<h2 id="命令格式：-5"><a href="#命令格式：-5" class="headerlink" title="命令格式："></a>命令格式：</h2><pre><code>sort [选项] [文件名]
</code></pre><h2 id="常用参数：-5"><a href="#常用参数：-5" class="headerlink" title="常用参数："></a>常用参数：</h2><table>
<thead>
<tr>
<th>参数</th>
<th style="text-align:center">描述</th>
</tr>
</thead>
<tbody>
<tr>
<td>-n</td>
<td style="text-align:center">基于字符串的长度来排序,使用此选项允许根据数字值排序，而不是字母值</td>
</tr>
<tr>
<td>-k</td>
<td style="text-align:center">指定排序关键字</td>
</tr>
<tr>
<td>-b</td>
<td style="text-align:center">默认情况下，对整行进行排序，从每行的第一个字符开始。这个选项导致 sort 程序忽略每行开头的空格，从第一个非空白字符开始排序</td>
</tr>
<tr>
<td>-m</td>
<td style="text-align:center">只合并多个输入文件</td>
</tr>
<tr>
<td>-r</td>
<td style="text-align:center">按相反顺序排序,结果按照降序排列，而不是升序</td>
</tr>
<tr>
<td>-t</td>
<td style="text-align:center">自定义分隔符，默认为制表符</td>
</tr>
</tbody>
</table>
<h2 id="常用范例：-5"><a href="#常用范例：-5" class="headerlink" title="常用范例："></a>常用范例：</h2><p>例一：列出/usr/share/目录下使用空间最多的前 10 个目录文件，可以使用如下命令：</p>
<pre><code>du -s /usr/share/* | sort -nr | head -10
</code></pre><p>du -s /usr/share/* 命令显示/usr/share/目录下所有文件和目录的磁盘使用空间，目录包含目录下的子目录和文件<br><img src="https://dn-anything-about-doc.qbox.me/userid3372labid370time1420780699046" alt=""></p>
<p>例二：ls 命令能显示目录下文件的详细信息，包含空间使用大小，但与 du 命令不同的是，ls 命令不计算目录下的子目录和文件的大小。ls 显示格式如下:</p>
<pre><code>-rwxrwxrwx   1  root   root  542  11 月   29  test.php
</code></pre><p>现在想要对 ls 命令输出信息中的空间使用大小字段进行排序，可以使用如下命令：</p>
<pre><code>ls -l /usr/bin/ | sort -nr -k 5 | head -10
</code></pre><p><img src="https://dn-anything-about-doc.qbox.me/userid3372labid370time1420780744468" alt=""></p>
<p>例三：首先来看下下面的例子：<br><img src="https://dn-anything-about-doc.qbox.me/userid3372labid370time1420780803123" alt=""><br>由于 11 由 1 开始，比 5 大，所以排在 5 的前面。这时排序可以通过自定义排序字段来排序。使用下面的命令就可以解决。</p>
<p>sort  -k 1,1  -k 2n data.txt<br>第一个-k 选项指明只对第一个字段排序，1,1 意味着“始于并且结束于第一个字段”。 第二个-k 选项 2n 表示对第二个字段按数值排序。 还有一种格式，如-k 3.4，表示始于第三个字段的第四个字符，按数值排序。</p>
<p><img src="https://dn-anything-about-doc.qbox.me/userid3372labid370time1420780839828" alt=""></p>
<p>-k 选项的语法格式如下：</p>
<pre><code>[ FStart [ .CStart ] ] [ Modifier ] [ , [ FEnd [ .CEnd ] ][ Modifier ] ]
</code></pre><p>这个语法格式可以被其中的逗号（“，”）分为两大部分，Start 部分和 End 部分。</p>
<p>先给你灌输一个思想，那就是“如果不设定 End 部分，那么就认为 End 被设定为行尾”。这个概念很重要的，但往往你不会重视它。</p>
<p>Start 部分也由三部分组成，其中的 Modifier 部分就是类似 n 和 r 的选项部分。我们重点说说 Start 部分的 FStart 和 CStart。 FStart.CStart，其中 FStart 就是表示使用的域，而 CStart 则表示在 FStart 域中从第几个字符开始算“排序首字符”。CStart 是可以省略的，省略的话就表示从本域的开头部分开始。之前例子中的-k 5 就是省略了 CStart 的例子。</p>
<p>同理，在 End 部分中，你可以设定 FEnd.CEnd，如果你省略.CEnd，则表示结尾到“域尾”，即本域的最后一个字符。或者，如果你将 CEnd 设定为 0(零)，也是表示结尾到“域尾”。</p>
<h1 id="uniq-命令"><a href="#uniq-命令" class="headerlink" title="uniq 命令"></a>uniq 命令</h1><p>uniq 命令经常和 sort 命令结合在一起使用。uniq 从标准输入或单个文件名参数接受数据有序列表，默认情况下，从数据列表中删除任何重复行。</p>
<p>uniq 只能用于排过序的数据输入，因此，uniq 要么使用管道，要么将排过序的文件作为输入，并总是以这种方式与 sort 命令结合起来使用。</p>
<p>uniq 命令是 unique 的缩写。</p>
<h2 id="命令格式：-6"><a href="#命令格式：-6" class="headerlink" title="命令格式："></a>命令格式：</h2><pre><code>uniq [选项] [文件名]
</code></pre><h2 id="常用参数：-6"><a href="#常用参数：-6" class="headerlink" title="常用参数："></a>常用参数：</h2><table>
<thead>
<tr>
<th>参数</th>
<th style="text-align:center">描述</th>
</tr>
</thead>
<tbody>
<tr>
<td>-c</td>
<td style="text-align:center">在每行前加上表示相应行目出现次数的前缀编号</td>
</tr>
<tr>
<td>-d</td>
<td style="text-align:center">只输出重复的行</td>
</tr>
<tr>
<td>-u</td>
<td style="text-align:center">只显示唯一的行</td>
</tr>
<tr>
<td>-D</td>
<td style="text-align:center">显示所有重复的行</td>
</tr>
<tr>
<td>-f</td>
<td style="text-align:center">比较时跳过前 n 列</td>
</tr>
<tr>
<td>-i</td>
<td style="text-align:center">比较的时候不区分大小写</td>
</tr>
<tr>
<td>-s</td>
<td style="text-align:center">比较时跳过前 n 个字符</td>
</tr>
<tr>
<td>-w</td>
<td style="text-align:center">对每行第 n 个字符以后的内容不作对照</td>
</tr>
</tbody>
</table>
<h2 id="常用范例：-6"><a href="#常用范例：-6" class="headerlink" title="常用范例："></a>常用范例：</h2><p>例一：找出/bin 目录和/usr/bin 目录下所有相同的命令，可以使用如下命令：</p>
<pre><code>ls /bin /usr/bin  | sort | uniq -d
</code></pre><p><img src="https://dn-anything-about-doc.qbox.me/userid3372labid370time1420781011797" alt=""></p>
<p>例二：现有文件内容如下，红色方框里的内容表示区号，现在要统计出各个区号的总人数。<br><img src="https://dn-anything-about-doc.qbox.me/userid3372labid370time1420781055838" alt=""><br>实现思路：首先按区号对每行信息排序，然后使用 uniq 命令对区号进行重复行统计。使用命令如下：</p>
<pre><code>sort -k 4.1n,4.1n student.txt | uniq -c -f 3 -w 2
</code></pre><p><img src="https://dn-anything-about-doc.qbox.me/userid3372labid370time1420781089813" alt=""></p>
<p>sort -k 4.1n,4.1n 表示对第四个字段的第一个字符按数值排序。</p>
<p>uniq -c -f 3 -w 2 中-f 3 表示跳过前三列的比较，那么现在只剩下最后一列，-w 2 表示第 2 个字符后的内容不做比较，为什么是 2 呢，因为跳过前三列时并没有跳过最后一列前面的空格分隔符，区号前都还有一个空格。</p>
<h1 id="join-命令"><a href="#join-命令" class="headerlink" title="join 命令"></a>join 命令</h1><p>join 命令类似于 paste，它会往文件中添加列，但是它使用了独特的方法来完成。一个 join 操作通常与关系型数据库有关联，在关系型数据库中来自多个享有共同关键域的表格的数据结合起来，得到一个期望的结果。这个 join 命令执行相同的操作，它把来自于多个基于共享关键域的文件的数据结合起来。</p>
<p>通俗地说，就是将两个文件中指定栏位相同的行连接起来，即按照两个文件中共同拥有的某一列，将对应的行拼接成一行。</p>
<h2 id="命令格式：-7"><a href="#命令格式：-7" class="headerlink" title="命令格式："></a>命令格式：</h2><pre><code>join [选项] 文件 1 文件 2
</code></pre><h2 id="常用参数：-7"><a href="#常用参数：-7" class="headerlink" title="常用参数："></a>常用参数：</h2><table>
<thead>
<tr>
<th>参数</th>
<th style="text-align:center">描述</th>
</tr>
</thead>
<tbody>
<tr>
<td>-j FIELD</td>
<td style="text-align:center">等同于 -1 FIELD -2 FIELD,-j 指定一个域作为匹配字段</td>
</tr>
<tr>
<td>-1 FIELD</td>
<td style="text-align:center">以 file1 中 FIELD 字段进行匹配</td>
</tr>
<tr>
<td>-2 FIELD</td>
<td style="text-align:center">以 file2 中 FIELD 字段进行匹配</td>
</tr>
<tr>
<td>-t</td>
<td style="text-align:center">自定义分隔符，默认为制表符</td>
</tr>
</tbody>
</table>
<h2 id="常用范例：-7"><a href="#常用范例：-7" class="headerlink" title="常用范例："></a>常用范例：</h2><p>例一：将两个文件中的第一个字段作为匹配字段，连接两个文件，可以使用如下命令：</p>
<pre><code>join  a.txt  b.txt
</code></pre><p><img src="https://dn-anything-about-doc.qbox.me/userid3372labid370time1420781241207" alt=""></p>
<p>例二：指定两个文件的第三个字段为匹配字段，连接两个文件，可以使用如下命令：</p>
<p>join  -1 3 -2 3 c.txt d.txt<br><img src="https://dn-anything-about-doc.qbox.me/userid3372labid370time1420781274456" alt=""><br>从上面的结果可以看到，一开始对 a.txt 和 b.txt 文件内容执行 join 命令时报错，这是因为 join 命令跟 uniq 命令一样，只能用于排过序的数据。</p>

      
    </div>
    
  </div>
  
    
    <div class="copyright">
        <p><span>本文标题:</span><a href="/2015/08/28/linux学习笔记2/">linux学习笔记2</a></p>
        <p><span>文章作者:</span><a href="/" title="回到主页">Bingo</a></p>
        <p><span>发布时间:</span>2015-08-28, 13:58:48</p>
        <p><span>最后更新:</span>2015-11-28, 16:46:29</p>
        <p>
            <span>原始链接:</span><a class="post-url" href="/2015/08/28/linux学习笔记2/" title="linux学习笔记2">http://blog.acbingo.cn/2015/08/28/linux学习笔记2/</a>
            <span class="copy-path" data-clipboard-text="原文: http://blog.acbingo.cn/2015/08/28/linux学习笔记2/　　作者: Bingo" title="点击复制文章链接"><i class="fa fa-clipboard"></i></span>
            <script> var clipboard = new Clipboard('.copy-path'); </script>
        </p>
        <p>
            <span>许可协议:</span><i class="fa fa-creative-commons"></i> <a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/4.0/" title="CC BY-NC-SA 4.0 International" target = "_blank">"署名-非商用-相同方式共享 4.0"</a> 转载请保留原文链接及作者。
        </p>
    </div>



    <nav id="article-nav">
        
            <div id="article-nav-newer" class="article-nav-title">
                <a href="/2015/08/29/Linux下C语言应用编程学习笔记/">
                    Linux下C语言应用编程学习笔记
                </a>
            </div>
        
        
            <div id="article-nav-older" class="article-nav-title">
                <a href="/2015/08/27/Bingo's exVim/">
                    Bingo的VIM
                </a>
            </div>
        
    </nav>

  
</article>

    <div id="toc" class="toc-article">
        <strong class="toc-title">文章目录</strong>
        
            <ol class="toc"><li class="toc-item toc-level-1"><a class="toc-link" href="#wc-命令"><span class="toc-number">1.</span> <span class="toc-text">wc 命令</span></a><ol class="toc-child"><li class="toc-item toc-level-2"><a class="toc-link" href="#命令格式："><span class="toc-number">1.1.</span> <span class="toc-text">命令格式：</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#常用参数："><span class="toc-number">1.2.</span> <span class="toc-text">常用参数：</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#常用范例："><span class="toc-number">1.3.</span> <span class="toc-text">常用范例：</span></a></li></ol></li><li class="toc-item toc-level-1"><a class="toc-link" href="#grep-命令"><span class="toc-number">2.</span> <span class="toc-text">grep 命令</span></a><ol class="toc-child"><li class="toc-item toc-level-2"><a class="toc-link" href="#命令格式：-1"><span class="toc-number">2.1.</span> <span class="toc-text">命令格式：</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#常用参数：-1"><span class="toc-number">2.2.</span> <span class="toc-text">常用参数：</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#常用范例：-1"><span class="toc-number">2.3.</span> <span class="toc-text">常用范例：</span></a></li></ol></li><li class="toc-item toc-level-1"><a class="toc-link" href="#正则表达式与-grep-命令"><span class="toc-number">3.</span> <span class="toc-text">正则表达式与 grep 命令</span></a><ol class="toc-child"><li class="toc-item toc-level-2"><a class="toc-link" href="#常用范例：-2"><span class="toc-number">3.1.</span> <span class="toc-text">常用范例：</span></a></li></ol></li><li class="toc-item toc-level-1"><a class="toc-link" href="#cut-命令"><span class="toc-number">4.</span> <span class="toc-text">cut 命令</span></a><ol class="toc-child"><li class="toc-item toc-level-2"><a class="toc-link" href="#命令格式：-2"><span class="toc-number">4.1.</span> <span class="toc-text">命令格式：</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#常用参数：-2"><span class="toc-number">4.2.</span> <span class="toc-text">常用参数：</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#常用范例：-3"><span class="toc-number">4.3.</span> <span class="toc-text">常用范例：</span></a></li></ol></li><li class="toc-item toc-level-1"><a class="toc-link" href="#paste-命令"><span class="toc-number">5.</span> <span class="toc-text">paste 命令</span></a><ol class="toc-child"><li class="toc-item toc-level-2"><a class="toc-link" href="#命令格式：-3"><span class="toc-number">5.1.</span> <span class="toc-text">命令格式：</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#常用参数：-3"><span class="toc-number">5.2.</span> <span class="toc-text">常用参数：</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#常用范例：-4"><span class="toc-number">5.3.</span> <span class="toc-text">常用范例：</span></a></li></ol></li><li class="toc-item toc-level-1"><a class="toc-link" href="#tr-命令"><span class="toc-number">6.</span> <span class="toc-text">tr 命令</span></a><ol class="toc-child"><li class="toc-item toc-level-2"><a class="toc-link" href="#命令格式：-4"><span class="toc-number">6.1.</span> <span class="toc-text">命令格式：</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#常用参数：-4"><span class="toc-number">6.2.</span> <span class="toc-text">常用参数：</span></a></li></ol></li><li class="toc-item toc-level-1"><a class="toc-link" href="#sort-命令"><span class="toc-number">7.</span> <span class="toc-text">sort 命令</span></a><ol class="toc-child"><li class="toc-item toc-level-2"><a class="toc-link" href="#命令格式：-5"><span class="toc-number">7.1.</span> <span class="toc-text">命令格式：</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#常用参数：-5"><span class="toc-number">7.2.</span> <span class="toc-text">常用参数：</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#常用范例：-5"><span class="toc-number">7.3.</span> <span class="toc-text">常用范例：</span></a></li></ol></li><li class="toc-item toc-level-1"><a class="toc-link" href="#uniq-命令"><span class="toc-number">8.</span> <span class="toc-text">uniq 命令</span></a><ol class="toc-child"><li class="toc-item toc-level-2"><a class="toc-link" href="#命令格式：-6"><span class="toc-number">8.1.</span> <span class="toc-text">命令格式：</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#常用参数：-6"><span class="toc-number">8.2.</span> <span class="toc-text">常用参数：</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#常用范例：-6"><span class="toc-number">8.3.</span> <span class="toc-text">常用范例：</span></a></li></ol></li><li class="toc-item toc-level-1"><a class="toc-link" href="#join-命令"><span class="toc-number">9.</span> <span class="toc-text">join 命令</span></a><ol class="toc-child"><li class="toc-item toc-level-2"><a class="toc-link" href="#命令格式：-7"><span class="toc-number">9.1.</span> <span class="toc-text">命令格式：</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#常用参数：-7"><span class="toc-number">9.2.</span> <span class="toc-text">常用参数：</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#常用范例：-7"><span class="toc-number">9.3.</span> <span class="toc-text">常用范例：</span></a></li></ol></li></ol>
        
    </div>
    <style>
        .left-col .switch-btn,
        .left-col .switch-area {
            display: none;
        }
        .toc-level-3 i,
        .toc-level-3 ol {
            display: none !important;
        }
    </style>

    <input type="button" id="tocButton" value="隐藏目录"  title="点击按钮隐藏或者显示文章目录">

    <script>
        yiliaConfig.toc = ["隐藏目录", "显示目录", !!"false"];
    </script>



    
<div class="share">
    
        <div class="bdsharebuttonbox">
            <a href="#" class="fa fa-twitter bds_twi" data-cmd="twi" title="分享到推特"></a>
            <a href="#" class="fa fa-weibo bds_tsina" data-cmd="tsina" title="分享到新浪微博"></a>
            <a href="#" class="fa fa-qq bds_sqq" data-cmd="sqq" title="分享给 QQ 好友"></a>
            <a href="#" class="fa fa-files-o bds_copy" data-cmd="copy" title="复制网址"></a>
            <a href="#" class="fa fa fa-envelope-o bds_mail" data-cmd="mail" title="通过邮件分享"></a>
            <a href="#" class="fa fa-weixin bds_weixin" data-cmd="weixin" title="生成文章二维码"></a>
            <a href="#" class="fa fa-share-alt bds_more" data-cmd="more"></i></a>
        </div>
        <script>
            window._bd_share_config={
                "common":{"bdSnsKey":{},"bdText":"linux学习笔记2　| Bingo's Blog　","bdMini":"2","bdMiniList":false,"bdPic":"","bdStyle":"0","bdSize":"24"},"share":{}};with(document)0[(getElementsByTagName('head')[0]||body).appendChild(createElement('script')).src='http://bdimg.share.baidu.com/static/api/js/share.js?v=89860593.js?cdnversion='+~(-new Date()/36e5)];
        </script>
    

    
</div>







    
      <div class="duoshuo" id="comments">
    <div id="comment-box" ></div>
    <div class="ds-thread" id="ds-thread" data-thread-key="2015/08/28/linux学习笔记2/" data-title="linux学习笔记2" data-url="http://blog.acbingo.cn/2015/08/28/linux学习笔记2/"></div>
    <script>
        var duoshuoQuery = {short_name:"acbingo"};
        var loadComment = function(){
            var d = document, s = d.createElement('script');
            s.src = (document.location.protocol == 'https:' ? 'https:' : 'http:') + '//static.duoshuo.com/embed.js';
            s.async = true; s.charset = 'UTF-8';
            (d.head || d.body).appendChild(s);
        }

        
    </script>
    
    <script> loadComment(); </script>

</div>
    




    <div class="scroll" id="post-nav-button">
        
            <a href="/2015/08/29/Linux下C语言应用编程学习笔记/" title="上一篇: Linux下C语言应用编程学习笔记">
                <i class="fa fa-angle-left"></i>
            </a>
        

        <a title="文章列表"><i class="fa fa-bars"></i><i class="fa fa-times"></i></a>

        
            <a href="/2015/08/27/Bingo's exVim/" title="下一篇: Bingo的VIM">
                <i class="fa fa-angle-right"></i>
            </a>
        
    </div>

    <ul class="post-list"><li class="post-list-item"><a class="post-list-link" href="/2016/08/07/c++初始化列表/">c++初始化列表</a></li><li class="post-list-item"><a class="post-list-link" href="/2016/08/05/一步一步学习红黑树-2/">一步一步学习红黑树-2</a></li><li class="post-list-item"><a class="post-list-link" href="/2016/08/04/一步一步学习红黑树/">一步一步学习红黑树-1</a></li><li class="post-list-item"><a class="post-list-link" href="/2016/08/03/回文解码/">回文解码</a></li><li class="post-list-item"><a class="post-list-link" href="/2016/08/03/C++中虚析构函数的作用/">C++中虚析构函数的作用</a></li><li class="post-list-item"><a class="post-list-link" href="/2016/08/03/const/">const</a></li><li class="post-list-item"><a class="post-list-link" href="/2016/08/03/const与常成员函数/">const与常成员函数</a></li><li class="post-list-item"><a class="post-list-link" href="/2016/07/31/虚拟继承/">虚拟继承</a></li><li class="post-list-item"><a class="post-list-link" href="/2016/07/31/函数指针/">函数指针</a></li><li class="post-list-item"><a class="post-list-link" href="/2016/07/28/记事本/">记事本</a></li><li class="post-list-item"><a class="post-list-link" href="/2016/07/28/StarFiles/">StarFiles</a></li><li class="post-list-item"><a class="post-list-link" href="/2016/07/28/酒店管理系统/">酒店管理系统</a></li><li class="post-list-item"><a class="post-list-link" href="/2016/07/28/飞机大战/">飞机大战</a></li><li class="post-list-item"><a class="post-list-link" href="/2016/07/27/仿函数/">仿函数/函数对象</a></li><li class="post-list-item"><a class="post-list-link" href="/2016/07/27/二叉树中和为某一值的路径/">二叉树中和为某一值的路径</a></li><li class="post-list-item"><a class="post-list-link" href="/2016/07/26/递归实现反转列表/">递归实现反转链表</a></li><li class="post-list-item"><a class="post-list-link" href="/2016/07/26/快速幂/">快速幂</a></li><li class="post-list-item"><a class="post-list-link" href="/2016/07/26/bitset的用法/">bitset的用法</a></li><li class="post-list-item"><a class="post-list-link" href="/2016/07/26/二分查找、归并排序和快速排序/">二分查找、归并排序和快速排序</a></li><li class="post-list-item"><a class="post-list-link" href="/2016/07/25/重建二叉树/">重建二叉树</a></li><li class="post-list-item"><a class="post-list-link" href="/2016/07/25/leetcode_5/">LeetCode_5:Longest Palindromic Substring</a></li><li class="post-list-item"><a class="post-list-link" href="/2016/07/24/leetcode_4/">LeetCode_4:Median of Two Sorted Arrays</a></li><li class="post-list-item"><a class="post-list-link" href="/2016/07/24/leetcode_3/">LeetCode_3:Longest Substring Without Repeating Characters</a></li><li class="post-list-item"><a class="post-list-link" href="/2016/07/24/leetcode_2/">LeetCode_2:Add Two Numbers</a></li><li class="post-list-item"><a class="post-list-link" href="/2016/07/24/leetcode_1_Two Sum/">LeetCode_1:Two Sum</a></li><li class="post-list-item"><a class="post-list-link" href="/2016/06/07/Bingo's_ShadowSocks使用说明/">Bingo's_Shadowsocks</a></li><li class="post-list-item"><a class="post-list-link" href="/2016/05/03/如何优雅的开启wifi热点/">如何优雅的开启wifi热点</a></li><li class="post-list-item"><a class="post-list-link" href="/2016/05/02/如何优雅的连接指定wifi热点/">如何优雅的连接指定wifi热点</a></li><li class="post-list-item"><a class="post-list-link" href="/2016/05/02/对AndroidWifi状态广播的研究/">对AndroidWifi状态广播的研究</a></li><li class="post-list-item"><a class="post-list-link" href="/2016/05/01/coursera数据结构_字符串_课后作业/">coursera数据结构_字符串_课后作业</a></li><li class="post-list-item"><a class="post-list-link" href="/2016/05/01/简单几步在Android_Studio上实现二维码的扫描/">简单几步在Android_Studio上实现二维码的生成与扫描</a></li><li class="post-list-item"><a class="post-list-link" href="/2016/04/25/coursera_算法课后习题/">coursera_算法课后习题</a></li><li class="post-list-item"><a class="post-list-link" href="/2016/04/25/coursera_计算机组成学习笔记/">coursera_计算机组成学习笔记</a></li><li class="post-list-item"><a class="post-list-link" href="/2016/04/20/cocos2dx-飞机大战/">cocos2dx-飞机大战</a></li><li class="post-list-item"><a class="post-list-link" href="/2016/04/14/android_ping不通电脑/">android_ping不通电脑</a></li><li class="post-list-item"><a class="post-list-link" href="/2016/04/14/android创建与连接热点/">android创建与连接热点</a></li><li class="post-list-item"><a class="post-list-link" href="/2016/04/01/coursera_算法_递归/">coursera_算法_递归</a></li><li class="post-list-item"><a class="post-list-link" href="/2016/03/30/coursera_操作系统学习笔记/">coursera_操作系统学习笔记_计算机操作系统概述</a></li><li class="post-list-item"><a class="post-list-link" href="/2016/03/29/编译原理_中科大公开课_第一单元编译器介绍作业/">编译原理_中科大公开课_第一单元编译器介绍作业</a></li><li class="post-list-item"><a class="post-list-link" href="/2016/03/25/关于Inflater与findViewById()的思考/">关于Inflater与findViewById()的思考</a></li><li class="post-list-item"><a class="post-list-link" href="/2016/03/11/coursera_魔兽世界终结版/">coursera_魔兽世界终结版</a></li><li class="post-list-item"><a class="post-list-link" href="/2016/03/05/coursera_算法作业_枚举/">coursera_算法作业_枚举</a></li><li class="post-list-item"><a class="post-list-link" href="/2016/01/27/coursera_c++高级主体和c++11新特性/">coursera_c++高级主体和c++11新特性</a></li><li class="post-list-item"><a class="post-list-link" href="/2016/01/27/coursera_c++期末考试/">coursera_c++期末考试</a></li><li class="post-list-item"><a class="post-list-link" href="/2016/01/24/coursera_STL2作业/">coursera_STL2作业</a></li><li class="post-list-item"><a class="post-list-link" href="/2016/01/21/coursera容器适配器/">coursera容器适配器_算法</a></li><li class="post-list-item"><a class="post-list-link" href="/2016/01/21/coursera标准模版库STL2/">coursera标准模版库STL2</a></li><li class="post-list-item"><a class="post-list-link" href="/2016/01/20/coursera编程作业-STL1/">coursera编程作业-STL1</a></li><li class="post-list-item"><a class="post-list-link" href="/2016/01/20/coursera疑问/">coursera疑问</a></li><li class="post-list-item"><a class="post-list-link" href="/2016/01/19/coursera学习笔记-函数对象/">coursera学习笔记-函数对象</a></li><li class="post-list-item"><a class="post-list-link" href="/2016/01/19/coursera学习笔记-顺序容器Vector/">coursera学习笔记-顺序容器Vector、List和Deque</a></li><li class="post-list-item"><a class="post-list-link" href="/2015/12/05/算法学习笔记-14-最长公共子序列/">算法学习笔记-14-最长公共子序列</a></li><li class="post-list-item"><a class="post-list-link" href="/2015/12/03/算法学习笔记-13-矩阵连乘问题/">算法学习笔记-13-矩阵连乘问题</a></li><li class="post-list-item"><a class="post-list-link" href="/2015/12/01/算法学习笔记-12-循环赛日程表/">算法学习笔记-12-循环赛日程表</a></li><li class="post-list-item"><a class="post-list-link" href="/2015/12/01/算法学习笔记-11-最接近点对问题/">算法学习笔记-11-最接近点对问题</a></li><li class="post-list-item"><a class="post-list-link" href="/2015/12/01/算法学习笔记-10-线性时间选择/">算法学习笔记-10-线性时间选择</a></li><li class="post-list-item"><a class="post-list-link" href="/2015/11/27/算法学习笔记-9-快速排序/">算法学习笔记-9-快速排序</a></li><li class="post-list-item"><a class="post-list-link" href="/2015/11/26/算法学习笔记-8-合并排序/">算法学习笔记-8-归并排序</a></li><li class="post-list-item"><a class="post-list-link" href="/2015/11/24/算法学习笔记-7-棋盘覆盖问题/">算法学习笔记-7-棋盘覆盖问题</a></li><li class="post-list-item"><a class="post-list-link" href="/2015/11/22/算法学习笔记-6-Strassen矩阵乘法/">算法学习笔记-6-Strassen矩阵乘法</a></li><li class="post-list-item"><a class="post-list-link" href="/2015/11/21/算法学习笔记-5-Hanoi塔问题/">算法学习笔记-5-Hanoi塔问题</a></li><li class="post-list-item"><a class="post-list-link" href="/2015/11/20/算法学习笔记-4-整数划分问题/">算法学习笔记-4-整数划分问题</a></li><li class="post-list-item"><a class="post-list-link" href="/2015/11/19/算法学习笔记-3-排列问题/">算法学习笔记-3-排列问题</a></li><li class="post-list-item"><a class="post-list-link" href="/2015/11/18/算法学习笔记-2-递归的概念/">算法学习笔记-2-递归的概念</a></li><li class="post-list-item"><a class="post-list-link" href="/2015/11/17/coursera_标准模板库STL/">coursera_标准模板库STL</a></li><li class="post-list-item"><a class="post-list-link" href="/2015/11/17/算法学习笔记-0-序/">算法学习笔记-0-序</a></li><li class="post-list-item"><a class="post-list-link" href="/2015/11/17/算法学习笔记-1-NP完全性理论/">算法学习笔记-1-NP完全性理论</a></li><li class="post-list-item"><a class="post-list-link" href="/2015/11/14/文件操作和模板_编程作业/">文件操作和模板_编程作业</a></li><li class="post-list-item"><a class="post-list-link" href="/2015/11/11/ubuntu下安装最新的nodejs(v4.2.2)/">ubuntu下安装最新的nodejs(v4.2.2)</a></li><li class="post-list-item"><a class="post-list-link" href="/2015/11/11/ubuntu14.04的环境变量/">ubuntu14.04的环境变量</a></li><li class="post-list-item"><a class="post-list-link" href="/2015/11/01/coursera学习笔记_文件操作和模板/">coursera学习笔记_文件操作和模板</a></li><li class="post-list-item"><a class="post-list-link" href="/2015/10/31/coursera学习笔记_多态和虚函数/">coursera学习笔记_多态和虚函数</a></li><li class="post-list-item"><a class="post-list-link" href="/2015/10/28/Coursera_程序设计与晋级_继承与派生_编程作业/">Coursera_程序设计与晋级_继承与派生_编程作业</a></li><li class="post-list-item"><a class="post-list-link" href="/2015/10/22/科大OJ-数据结构-DNA序列/">科大OJ-数据结构-DNA序列</a></li><li class="post-list-item"><a class="post-list-link" href="/2015/10/20/科大OJ-数据结构-求表达式串的后缀表达式和值/">科大OJ-数据结构-求表达式串的后缀表达式和值</a></li><li class="post-list-item"><a class="post-list-link" href="/2015/10/01/科大OJ-数据结构-击鼓传花/">科大OJ-数据结构-击鼓传花</a></li><li class="post-list-item"><a class="post-list-link" href="/2015/09/30/科大OJ-数据结构-求集合的交并补集/">科大OJ-数据结构-求集合的交并补集</a></li><li class="post-list-item"><a class="post-list-link" href="/2015/09/27/hexo无法本地访问/">hexo无法本地访问</a></li><li class="post-list-item"><a class="post-list-link" href="/2015/09/26/继承与派生/">coursera学习笔记_继承与派生</a></li><li class="post-list-item"><a class="post-list-link" href="/2015/09/26/大数类模板/">大数类模板</a></li><li class="post-list-item"><a class="post-list-link" href="/2015/09/15/vimium学习笔记/">vimium学习笔记</a></li><li class="post-list-item"><a class="post-list-link" href="/2015/09/04/程序员矩阵/">程序员矩阵</a></li><li class="post-list-item"><a class="post-list-link" href="/2015/09/03/coursera学习笔记_运算符重载/">coursera学习笔记_运算符重载</a></li><li class="post-list-item"><a class="post-list-link" href="/2015/09/01/写hexo博客、markdown文章时图床的挑选/">写hexo博客、markdown文章时图床的挑选</a></li><li class="post-list-item"><a class="post-list-link" href="/2015/08/31/coursera学习笔记-c++程序设计/">coursera学习笔记-c++程序设计</a></li><li class="post-list-item"><a class="post-list-link" href="/2015/08/29/Linux下C语言应用编程学习笔记/">Linux下C语言应用编程学习笔记</a></li><li class="post-list-item"><a class="post-list-link" href="/2015/08/28/linux学习笔记2/">linux学习笔记2</a></li><li class="post-list-item"><a class="post-list-link" href="/2015/08/27/Bingo's exVim/">Bingo的VIM</a></li><li class="post-list-item"><a class="post-list-link" href="/2015/08/27/linux下去掉^M的方法/">linux下去掉^M的方法</a></li><li class="post-list-item"><a class="post-list-link" href="/2015/08/27/vim的持久撤销功能/">vim的持久撤销功能</a></li><li class="post-list-item"><a class="post-list-link" href="/2015/08/25/linux学习笔记/">linux学习笔记</a></li><li class="post-list-item"><a class="post-list-link" href="/2015/08/18/线段树学习笔记-7-hdu1698/">线段树学习笔记-7-hdu1698</a></li><li class="post-list-item"><a class="post-list-link" href="/2015/08/18/线段树学习笔记-6-区间更新/">线段树学习笔记-6-区间更新</a></li><li class="post-list-item"><a class="post-list-link" href="/2015/08/18/Coursera_程序设计与算法_C程序设计进阶/">Coursera_程序设计与算法_C程序设计进阶</a></li><li class="post-list-item"><a class="post-list-link" href="/2015/08/18/线段树学习笔记-5-hdu2795/">线段树学习笔记-5-hdu2795</a></li><li class="post-list-item"><a class="post-list-link" href="/2015/08/14/线段树学习笔记-4-hdu1394/">线段树学习笔记-4-hdu1394</a></li><li class="post-list-item"><a class="post-list-link" href="/2015/08/14/求逆序对的个数/">求逆序对的个数</a></li><li class="post-list-item"><a class="post-list-link" href="/2015/08/14/线段树学习笔记-3-hdu1754/">线段树学习笔记-3-hdu1754</a></li><li class="post-list-item"><a class="post-list-link" href="/2015/08/13/线段树学习笔记-2-hdu1166/">线段树学习笔记-2-hdu1166</a></li><li class="post-list-item"><a class="post-list-link" href="/2015/08/13/线段树学习笔记/">线段树学习笔记-1-入门</a></li><li class="post-list-item"><a class="post-list-link" href="/2015/08/11/Coursera_程序设计与算法_计算导论与C语言基础_期末编程测试/">Coursera_程序设计与算法_计算导论与C语言基础_期末编程测试</a></li><li class="post-list-item"><a class="post-list-link" href="/2015/08/10/Coursera_程序设计与算法_C程序设计进阶_C程序中的函数/">Coursera_程序设计与算法_计算导论与C语言基础_数组应用练习</a></li><li class="post-list-item"><a class="post-list-link" href="/2015/08/10/Coursera_程序设计与算法_计算导论与C语言基础_数组应用练习/">Coursera_程序设计与算法_计算导论与C语言基础_数组应用练习</a></li><li class="post-list-item"><a class="post-list-link" href="/2015/08/10/hdu4821 String/">hdu4821 String</a></li><li class="post-list-item"><a class="post-list-link" href="/2015/08/09/Rolling Hash(Rabin-Karp算法)匹配字符串/">Rolling Hash(Rabin-Karp算法)匹配字符串</a></li><li class="post-list-item"><a class="post-list-link" href="/2015/08/09/设置vim的默认工作路径/">设置vim的默认工作路径</a></li><li class="post-list-item"><a class="post-list-link" href="/2015/08/08/滑动窗口的单调队列/">滑动窗口的单调队列</a></li><li class="post-list-item"><a class="post-list-link" href="/2015/08/08/ssh -T git@github.com出现Permission denied (publickey)/">ssh -T git@github.com出现Permission denied (publickey)</a></li><li class="post-list-item"><a class="post-list-link" href="/2015/05/29/UVa10791-Minimum-Sum-LCM/">UVa10791-Minimum Sum LCM</a></li><li class="post-list-item"><a class="post-list-link" href="/2015/05/29/uva100/">uva100</a></li></ul>




    <script>
        
    </script>
</div>
      <footer id="footer">
    <div class="outer">
        <div id="footer-info">
            <div class="footer-left">
                <i class="fa fa-copyright"></i> 
                2014-2016 Bingo
            </div>
            <div class="footer-right">
                <a href="http://hexo.io/" target="_blank" title="快速、简洁且高效的博客框架">Hexo</a>  Theme <a href="https://github.com/MOxFIVE/hexo-theme-yelee" target="_blank" title="简而不减 Hexo 双栏博客主题  v3.5">Yelee</a> by MOxFIVE <i class="fa fa-heart animated infinite pulse"></i>
            </div>
        </div>
        
            <div class="visit">
                
                    <span id="busuanzi_container_site_pv" style='display:none'>
                        <span id="site-visit" title="本站到访数"><i class="fa fa-user" aria-hidden="true"></i><span id="busuanzi_value_site_uv"></span>
                        </span>
                    </span>
                
                
                    <span>| </span>
                
                
                    <span id="busuanzi_container_page_pv" style='display:none'>
                        <span id="page-visit"  title="本页阅读量"><i class="fa fa-eye animated infinite pulse" aria-hidden="true"></i><span id="busuanzi_value_page_pv"></span>
                        </span>
                    </span>
                
            </div>
        
    </div>
</footer>
    </div>
    
<script data-main="/js/main.js" src="//cdn.bootcss.com/require.js/2.2.0/require.min.js"></script>





<div class="scroll" id="scroll">
    <a href="#" title="返回顶部"><i class="fa fa-arrow-up"></i></a>
    <a href="#comments" onclick="load$hide();" title="查看评论"><i class="fa fa-comments-o"></i></a>
    <a href="#footer" title="转到底部"><i class="fa fa-arrow-down"></i></a>
</div>
<script>
    // Open in New Window
    
        var oOpenInNew = {
            
            
            
            
            
            
             archives: ".archive-article-title", 
             miniArchives: "a.post-list-link", 
            
             friends: "#js-friends a", 
             socail: ".social a" 
        }
        for (var x in oOpenInNew) {
            $(oOpenInNew[x]).attr("target", "_blank");
        }
    
</script>

<script async src="https://dn-lbstatics.qbox.me/busuanzi/2.3/busuanzi.pure.mini.js">
</script>
  </div>
</body>
</html>